package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2024/09/08
 * 迭代中删除元素
 */
public class ArrayListDelTest {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("tom");
        names.add("lucy");
        names.add("lucy");
        names.add("lucy");
        names.add("jerry");
//        for (int i = 0; i < names.size(); i++) {
//            if (("lucy").equals(names.get(i))) {//("lucy").equals(names.get(i))防止空指针异常，数据中可能会有null
//                names.remove(i);
//                /*
//                结果，原因看教案
//                tom lucy jerry
//                 */
//                // 第一种方法，回调指针：
//                i--;
//            }
//        }


        //第二种方法，倒序遍历
//        for (int i = names.size() - 1; i >= 0; i--) {
//            if (("lucy").equals(names.get(i))) {//("lucy").equals(names.get(i))防止空指针异常，数据中可能会有null
//                names.remove(i);
//            }
//        }

        //迭代器
        Iterator<String> iterator = names.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            if ("lucy".equals(next)){
                iterator.remove();
            }
        }

        for (String name : names) {
            System.out.println(name);
        }
    }


}
